using StudentManagement.Application.DTOs;

namespace StudentManagement.Application.Services;

public interface IStudentService
{
    Task<StudentDTO> GetStudentByIdAsync(int id);
    Task<StudentDTO> GetStudentByStudentIdAsync(string studentId);
    Task<IEnumerable<StudentDTO>> GetAllStudentsAsync();
    Task<IEnumerable<StudentDTO>> GetStudentsByClassIdAsync(int classId);
    Task<IEnumerable<StudentDTO>> SearchStudentsAsync(string keyword);
    Task<StudentDTO> CreateStudentAsync(StudentDTO studentDTO);
    Task<StudentDTO> UpdateStudentAsync(int id, StudentDTO studentDTO);
    Task DeleteStudentAsync(int id);
    Task<bool> StudentExistsAsync(int id);
    Task<bool> StudentIdExistsAsync(string studentId);
}